/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package MenuPrincipal;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
import tabla.ControlTabla;
import tabla.ModeloTabla;

/**
 *
 * @author martinLequerica
 */
public class MenuPrincipal extends JFrame {

    private JMenuBar BarraMenu;
    private JMenu menu;
    private JMenuItem item;
    private String[] etiquetas = {"En Venta", "Precio Total", "Profesor", "Nombre Apunte", "Cod", "Id"};
    private JButton vender, cancelar, buscar;
    private JTextField profesor, nombreApunte, carrera, id, cod, precioTotal;
    private JList lista;
    private DefaultListModel dlm;
    private JTable tabla;
    private ModeloTabla modelo;
    private PopMenu popMenu;
    private JScrollPane scroll;
    private PopUpMenuLista popLista;
    private JPanel panelUsuario;

    public MenuPrincipal() {

        
    
        //super("Fotocopiadora Beta 1.0 by hate");

        //inicializo variables
        vender = new JButton("Vender");
        cancelar = new JButton("Refresh");
        buscar = new JButton("Buscar");
        
        //jtextfield
        profesor = new JTextField();
        nombreApunte = new JTextField();
        carrera = new JTextField();
        cod = new JTextField();
        id = new JTextField();
        precioTotal = new JTextField();

        //lista
        lista = new JList();
        dlm = new DefaultListModel();
        lista.setModel(dlm);
        JScrollPane pane = new JScrollPane(lista);


        //fin inicializar variables


        //frame pantalla completa
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
//        d.setSize(500, 500);
        setSize(d);



        BarraMenu = new JMenuBar();
        menu = new JMenu("menu");


        setLayout(new GridBagLayout());


        //Creo layout
        GridBagConstraints constraints = new GridBagConstraints();


        //panel en blanco

        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());


        constraints.gridx = 0;//en que columna empieza
        constraints.gridy = 0;//en que fila empieza
        constraints.gridwidth = 1;//cantidad de columnas que ocupa
        constraints.gridheight = 4; //cantidad de filas que ocupa
//        La tabla debe estirarse para todos lados ponemos fil both
        constraints.fill = GridBagConstraints.BOTH;
        constraints.weightx = 0.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 0.0; //la columna debe estirarse poner 0 si no
        this.getContentPane().add(panel, constraints);
       

        //creo la tabla

        // Crea el modelo
        modelo = new ModeloTabla();

        // Crea el control, pasándole el modelo
        ControlTabla control = new ControlTabla(modelo);

        // Crea la vista, pasándole el control
        scroll = new JScrollPane();
        tabla = new JTable(modelo);
       
        scroll.setViewportView(tabla);
        scroll.setColumnHeaderView(tabla.getTableHeader());

        //restricciones tabla
        constraints.gridx = 0;//en que columna empieza
        constraints.gridy = 6;//en que fila empieza
        constraints.gridwidth = 5;//cantidad de columnas que ocupa
        constraints.gridheight = 1; //cantidad de filas que ocupa
        // La tabla debe estirarse para todos lados ponemos fil both
        constraints.fill = GridBagConstraints.BOTH;
        constraints.weightx = 1.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 1.0; //la columna debe estirarse poner 0 si no
        JPanel jp1 = new JPanel();
        
        this.getContentPane().add(scroll, constraints);
        
        
        

        

        popMenu = new PopMenu();

        tabla.setComponentPopupMenu(popMenu);




        //label en venta
        constraints.gridx = 1;//en que columna empieza
        constraints.anchor = GridBagConstraints.SOUTH;
        constraints.gridy = 0;//en que fila empieza
        constraints.gridwidth = 1;//cantidad de columnas que ocupa
        constraints.gridheight = 1; //cantidad de filas que ocupa
        constraints.fill = 0;
        constraints.weightx = 0.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 0.0; //la columna debe estirarse poner 0 si no
        this.getContentPane().add(new JLabel(etiquetas[0]), constraints);
        constraints.anchor = GridBagConstraints.CENTER;
        //aniado la lista
                
        //aniado popup a la lista
         popLista = new PopUpMenuLista();
         lista.setComponentPopupMenu(popLista);
        
        

        constraints.gridx = 1;//en que columna empieza
        constraints.gridy = 1;//en que fila empieza
        constraints.gridwidth = 1;//cantidad de columnas que ocupa
        constraints.gridheight = 3; //cantidad de filas que ocupa
        constraints.fill = GridBagConstraints.BOTH;
        constraints.weightx = 0.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 1.0; //la columna debe estirarse poner 0 si no

        this.getContentPane().add(pane, constraints);


        
        



        //ventas

        JPanel ventas = new JPanel();
        ventas.setLayout(new GridLayout(4, 1));
        ventas.add(new JLabel(etiquetas[1]));
        ventas.add(precioTotal);
        
        ventas.add(vender);
        ventas.add(cancelar);

        constraints.gridx = 3;//en que columna empieza
        constraints.gridy = 3;//en que fila empieza
        constraints.gridwidth = 1;//cantidad de columnas que ocupa
        constraints.gridheight = 1; //cantidad de filas que ocupa
        constraints.fill = 0;
        constraints.weightx = 0.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 0.0; //la columna debe estirarse poner 0 si no
        constraints.anchor = GridBagConstraints.SOUTH;
        this.getContentPane().add(ventas, constraints);




        //busqueda
        JPanel busqueda = new JPanel();
        busqueda.setLayout(new GridLayout(2, 5));
        busqueda.add(new JLabel(etiquetas[5]));
        busqueda.add(new JLabel(etiquetas[4]));
        busqueda.add(new JLabel(etiquetas[2]));
        busqueda.add(new JLabel(etiquetas[3]));
        busqueda.add(new JLabel(""));
        busqueda.add(id);
        busqueda.add(cod);
        busqueda.add(profesor);
        busqueda.add(nombreApunte);
        busqueda.add(buscar);

        constraints.gridx = 0;//en que columna empieza
        constraints.gridy = 4;//en que fila empieza
        constraints.gridwidth = 5;//cantidad de columnas que ocupa
        constraints.gridheight = 2; //cantidad de filas que ocupa
        constraints.fill = GridBagConstraints.BOTH;
        constraints.weightx = 0.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 0.0; //la columna debe estirarse poner 0 si no
        this.getContentPane().add(busqueda, constraints);

        
        
        //otro panel
        panelUsuario = new JPanel();
        
        constraints.gridx = 4;//en que columna empieza
        constraints.gridy = 3;//en que fila empieza
        constraints.gridwidth = 1;//cantidad de columnas que ocupa
        constraints.gridheight = 1; //cantidad de filas que ocupa
//        La tabla debe estirarse para todos lados ponemos fil both
        constraints.fill = GridBagConstraints.BOTH;
        constraints.weightx = 0.0; //la fila debe estirarse poner 0 si no
        constraints.weighty = 0.0; //la columna debe estirarse poner 0 si no
        this.getContentPane().add(panelUsuario, constraints);




//fin layout
        this.setJMenuBar(BarraMenu);





        setVisible(true);

        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        
      

    }

    public JMenuBar getJmenu() {
        return this.BarraMenu;
    }

    public PopMenu getPopMenu() {
        return popMenu;
    }
    
   

    public JTable getTabla() {



        return tabla;
    }

    public ModeloTabla getModelo() {

        return modelo;
    }

    public JButton getBuscar() {
        return buscar;
    }

    public JList getLista() {
        return lista;
    }

    public JTextField getPrecioTotal() {
        return precioTotal;
    }
    
    public PopUpMenuLista getPopLista(){
        
        return popLista;
        
    }

    public JButton getVender() {
        return vender;
    }

    public JScrollPane getScroll() {
        return scroll;
    }

    public DefaultListModel getModelLista() {
        return dlm;
    }

    public JButton getCancelar() {
        return cancelar;
    }

    public JTextField getCarrera() {
        return carrera;
    }

    public JTextField getCod() {
        return cod;
    }

    public JTextField getId() {
        return id;
    }

    public JTextField getNombreApunte() {
        return nombreApunte;
    }

    public JTextField getProfesor() {
        return profesor;
    }

    public JPanel getPanelUsuario() {
        return panelUsuario;
    }

    
}
